package Tetris.Logica;

/** @author Adrian Garcia Rojas
  * @author Aida Ruiz Maya
  * @author Héctor Daniel González Terán
  * @version 1.0 30/12/2010
  * Esta programa es un tetris para el proyecto final de ICC1
  * Profesora de Asignatura: Fernanda Sanchez Puig
  * Ayudante de Laboratorio: Manuel Alcántara Juárez
  */ 

public class Tablero {

    public static final int X_LENGTH=10;
    public static final int Y_LENGTH=20;
    private int[][] matriz;
    public int score=0;
    public int numLineas;
    public int contadorLineas=0;


    public Tablero(){
        matriz=new int[Y_LENGTH][X_LENGTH];
    }
/**
 * Este metodo regresa el valor de la matriz en la posicion (y,x)
 * @param x posicion de la columna
 * @param y posicion del renglon
 * @return matriz
 */
    public int get(int x,int y){
        return matriz[y][x];
    }
/**
 * Este metodo ingresa un valor en la matriz en la posicion (y,x)
 * @param x posicion de la columna
 * @param y posicion del renglon
 * @param value nuevo valor de la matriz en ese momento
 * @return matriz
 */
    public void set(int x,int y,int value){
        matriz[y][x]=value;
    }

    /**
     * Este metodo elimina las lineas que se completan dentro del tablero
     */
     public void actualiza(){
        numLineas=0;
        int contador;
    	for(int j=0; j<Y_LENGTH; j++)
            {
                contador=0;
                for(int i=0; i<X_LENGTH; i++)
                    {
                        if(matriz[j][i]!=0)
                            {
                                contador++;
                            }
                    }
                if(contador==10)
                        {
                            numLineas++;
                            for(int i=0; i<X_LENGTH; i++)
                                {
                                    matriz[j][i]=0;
                                }
                            for(int h=j; h>0; h--)
                                {
                                    System.arraycopy(matriz[h-1], 0, matriz[h], 0, X_LENGTH);
                                }
                        }
            }
        contadorLineas+=numLineas;
    }
}
